class LaunchTraceData(object):
    def __init__(self, thread_id: int, thread_name: str, start_time: int, duration: int, name: str):
        self.thread_id = thread_id
        self.thread_name = thread_name
        self.start_time = start_time
        self.duration = duration
        self.name = name

class LaunchData(object):
    def __init__(self, lifecycle_name: str, start_time: int, lifecycle_duration: int, trace_name: str,
                 trace_duration: int, thread_id: int, children: list):
        self.lifecycle_name = lifecycle_name
        self.start_time = start_time
        self.lifecycle_duration = lifecycle_duration
        self.trace_name = trace_name
        self.trace_duration = trace_duration
        self.thread_id = thread_id
        self.children = children

class ThreadTraceTreeData(object):
    def __init__(self, name, start_time, duration, depth, children=[]):
        self.name = name
        self.start_time = start_time
        self.duration = duration
        self.depth = depth
        self.children = children

class ThreadTraceListData(object):
    def __init__(self, name, depth, tid, start_time, thread_name, duration):
        self.name = name
        self.depth = depth
        self.tid = tid
        self.start_time = start_time
        self.thread_name = thread_name
        self.duration = duration